#ifndef _HID_H
#define _HID_H 1
#include"usb.h"

//classic specific request
#define HID_REQUEST_TYPE  0x21
#define REPORT_REQUEST_TYPE 0x22
#define PID_REQUEST_TYPE 0x23

#define GET_REPPRT_REQUEST  1
#define 		INPUT_REQUEST_TYPE 1
#define 		OUTPUT_REQUEST_TYPE 2
#define 		FEATURE_REQUEST_TYPE 3

#define GET_IDLE_REQUEST      2
#define GET_PROTOCOL_REQUEST 3
#define SET_REPORT_REQUEST 9
#define SET_IDLE_REQUEST 10
#define SET_PROTOCOL_REQUEST 11








//                   ITEM


// main item
#define  InputItem    0x80
#define  OutputItem  0x90
#define  FeatureItem 0xb0
#define  CollectionItem 0xa0
#define  EndCollectionItem 0xc0



//global item
#define UsagePageItem  0x04
#define LogicalMinItem   0x14
#define LogicalMaxItem  0x24
#define PhysicalMinItem  0x34
#define PhysicalMaxItem 0x44
#define UnitExponentItem 0x54
#define UnitItem  0x64
#define ReportSizeItem 0x74
#define ReportIDItem  0x84
#define ReportCountItem 0x94
#define PushItem    0xa4
#define PopItem      0xb4

//local item
#define  LocalUsageItem 0x08
#define  LocalUsageMinItem 0x18
#define  LocalUsageMaxItem 0x28
#define  LocalDesignatorIndexItem 0x38
#define  LocalDesignatorMinItem 0x48
#define  LocalDesignatorMaxItem 0x58
#define  LocalStringIndexItem 0x78
#define  LocalStringMinItem 0x88
#define  LocalStringMaxItem 0x98
#define  LocalDelimiterItem  0xa8

#endif
